package Planificador.core.algoritmos;

import java.util.ArrayList;

import Planificador.core.proceso.Proceso;

public class AlgoritmoRoundRobin extends Algoritmo {
	protected int roundRobin;

	public AlgoritmoRoundRobin(int rr) {
		super("RoundRobin");
		this.roundRobin = rr;

	}

	@Override
	public Proceso getSiguiente(ArrayList<Proceso> procesos) {
		if (procesos.size() > 0) {
			return procesos.get(0);
		} else {
			return null;
		}
	}

	@Override
	public boolean hayQueDesalojar(Proceso p, ArrayList<Proceso> procesos) {
		return false;
	}

	@Override
	public boolean hayQueDesalojarPorTimer(Proceso p, ArrayList<Proceso> procesos) {
		if (p == null)
			return false;
		p.setTiempoEnProcesador(p.getTiempoEnProcesador() + 1);

		if (p.getTiempoEnProcesador() < this.roundRobin) {
			return false;
		}

		p.setTiempoEnProcesador(0);
		return true;
	}

	@Override
	public String toString() {
		return this.name + " " + this.roundRobin;
	}
}
